package cn.ware.house.interfaces.service.inboundservice.impl;

import cn.ware.house.interfaces.entity.inventory.InboundProduct;
import cn.ware.house.interfaces.mapper.inboundmapper.InboundProductMapper;
import cn.ware.house.interfaces.service.inboundservice.InboundProductService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;

@Service
public class InboundProductServiceImpl implements InboundProductService {

    @Resource
    private InboundProductMapper inboundProductMapper;

    // 分页查询入库产品信息（关联查询对应的样式信息）
    @Override
    public List<InboundProduct> getInboundProductsByPage(int pageNum, int pageSize) {
        int offset = (pageNum - 1) * pageSize;
        return inboundProductMapper.selectInboundProductsByPage(offset, pageSize);
        // 根据传入的页码和每页数量计算偏移量，然后调用数据访问层方法获取对应分页的入库产品信息（包含关联的样式信息）
    }

    // 根据入库产品编号查询产品信息（关联查询对应的样式信息）
    @Override
    public InboundProduct getInboundProductById(Integer id) {
        return inboundProductMapper.selectInboundProductById(id);
        // 调用数据访问层方法，根据传入的入库产品编号查询对应的产品信息（包含关联的样式信息）
    }

    // 插入入库产品信息
    @Override
    public boolean addInboundProduct(List<InboundProduct> inboundProduct) {
        int result = inboundProductMapper.insertInboundProduct(inboundProduct);
        return result > 0;
        // 调用数据访问层的插入方法，将入库产品信息插入数据库，根据受影响的行数判断插入是否成功
    }

    // 根据入库产品编号更新产品信息
    @Override
    public boolean updateInboundProductById(InboundProduct inboundProduct) {
        int result = inboundProductMapper.updateInboundProductById(inboundProduct);
        return result > 0;
        // 调用数据访问层的更新方法，根据传入的入库产品信息更新数据库中对应的记录，根据受影响的行数判断更新是否成功
    }

    // 根据入库产品编号删除产品信息
    @Override
    public boolean deleteInboundProductById(Integer id) {
        int result = inboundProductMapper.deleteInboundProductById(id);
        return result > 0;
        // 调用数据访问层的删除方法，根据传入的入库产品编号删除数据库中对应的记录，根据受影响的行数判断删除是否成功
    }
}